home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / cdrom / cdplay.zip / FREEPLAY.BAS < prev    next >
BASIC Source File  |  1989-07-15  |  3KB  |  55 lines

  1. 1 REM SAVE"Freeplay.bas",a
  2. 100 GOSUB 10000:GOTO 9000
  3. 3000 L=0:OUT PRTC,NOCMD:OUT PRTA,255:OUT PRTC,CMD:GOSUB 3050:RETURN:' \ ClearCmd
  4. 3050 ACK=INP(PRTB):IF ACK=2 THEN OUT PRTC,NOCMD:RETURN
  5. 3060 L=L+1:IF L<100 THEN 3050 ELSE GOSUB 8600:L=0:OUT PRTC,CMD:GOTO 3050
  6. 3200 GOSUB 3000:OUT PRTA,232:OUT PRTC,CMD:GOSUB 3050:' \ TrackPlay
  7. 3210 OUT PRTA,STRACK:OUT PRTC,CMD:GOSUB 3050:' \ Starting Track
  8. 3220 OUT PRTA,ETRACK:OUT PRTC,CMD:GOSUB 3050:RETURN: ' \ Ending Track
  9. 3299 ' \ TimePlay
  10. 3300 GOSUB 3000:OUT PRTA,224:OUT PRTC,CMD:GOSUB 3050
  11. 3310 FOR X=1 TO 6:OUT PRTA,PTIM(X):OUT PRTC,CMD:GOSUB 3050:NEXT X:RETURN
  12. 5000 D1=INT(DEC/10):D1=D1*16:' \ Dec>BCD
  13. 5010 D2=DEC MOD 10:BCD=D1 OR D2:RETURN
  14. 6000 K$=INKEY$:IF K$="" THEN GOTO 6000:' \ Getkey
  15. 6010 K=ASC(K$):RETURN
  16. 6200 IF K>47 AND K<58 THEN WK$=K$  ELSE WK$="":' \ Get numbers
  17. 6210 LOCATE VPOS,40:PRINT  WK$;"  ";
  18. 6220 GOSUB 6000:IF K=8 THEN  WK$="" ELSE IF K=13 THEN RETURN
  19. 6230 IF K>47 AND K<58 THEN WK$=WK$+K$:IF LEN(WK$)>2 THEN 6200
  20. 6240 IF K=32 THEN K$="":RETURN
  21. 6250 GOTO 6210
  22. 8500 LOCATE 20,26:PRINT "Press Drive Number (0-3)";:GOSUB 6000
  23. 8510 IF K>47 AND K<52 THEN DRIVE=VAL(K$) ELSE 8500
  24. 8520 FOR X=1 TO 20:K$=INKEY$:NEXT:GOSUB 8610
  25. 8530 LOCATE 20,26:PRINT "                        ":RETURN
  26. 8600 DRIVE=DRIVE-1:IF DRIVE<0 THEN DRIVE=3:TRY=TRY+1:IF TRY>5 THEN GOSUB 8700
  27. 8610 LOCATE 11,33:PRINT "Drive =";DRIVE
  28. 8620 DVAR=DRIVE*8:DVAR=DVAR XOR 32
  29. 8640 CMD=129 OR DVAR:NOCMD=128 OR DVAR:DMC=131 OR DVAR:NODMC=130 OR DVAR:RETURN
  30. 8700 LOCATE 20,26:PRINT "Set Drive On - Press Space":GOSUB 6000:RUN
  31. 9000 LOCATE 9,21:PRINT "Freeplay - A CD-ROM Drive Audio Player"
  32. 9010 LOCATE 13,30:PRINT "  D    Drive Select"
  33. 9012 LOCATE 15,30:PRINT "  P    Play All Tracks"
  34. 9020 LOCATE 17,30:PRINT "01-99  Track Play":GOSUB 3000
  35. 9030 GOSUB 6000:IF K$="P" OR K$="p" THEN GOSUB 9400:CLS
  36. 9032 IF K=27 THEN LOCATE 22,30:PRINT "To exit basic enter SYSTEM":GOTO 10600
  37. 9040 IF K>47 AND K<58 THEN GOSUB 9500:CLS
  38. 9050 IF K$="D" OR K$="d" THEN GOSUB 8500:TRY=0
  39. 9100 GOTO 9000
  40. 9400 GOSUB 3300:RETURN:' \ Playall 0:0:0-99:59:00
  41. 9500 VPOS=19:LOCATE VPOS,33:PRINT "Start: ";:GOSUB 6200:STRACK=VAL(WK$)
  42. 9520 VPOS=21:LOCATE VPOS,33:PRINT "  End: ";:GOSUB 6200:ETRACK=VAL(WK$)
  43. 9530 IF ETRACK=0 THEN ETRACK=99
  44. 9540 IF STRACK=0 THEN STRACK=1
  45. 9550 DEC=STRACK:GOSUB 5000:STRACK=BCD:DEC=ETRACK:GOSUB 5000:ETRACK=BCD
  46. 9560 GOSUB 3200:RETURN
  47. 10000 COLOR 15,2:KEY OFF:CLS:' \ Setup
  48. 10010 PRTA=&H300: ' \ I/O BaseAdr.
  49. 10020 PRTB=PRTA+1:PRTC=PRTA+2:DIRPRT=PRTA+3:NCMD=&H92:OTCMD=&H82:DRIVE=4
  50. 10022 GOSUB 8600:DIM PTIM(6):FOR X=1 TO 6:PTIM(X)=0:NEXT X:PTIM(4)=153
  51. 10030 OUT DIRPRT,OTCMD:RETURN: ' \ Set I/O Card to Output
  52. 10600 OUT PRTA,255:OUT PRTC,162:STOP: \ VERIFY DMA CHANNEL CLEAR
  53. 32000 ' \ Freeplay by Roscoe twr15Jul89
  54. 32001 ' \ For Hitachi CDR1503S/CDIFI4A CDR3500/CDIF35A
  55.